318B - Strings of Power - CodeForces Solution


implementation strings two pointers *1300

Please click on ads to support us..

Python Code:

import bisect

s=input().strip()

heavy=[]
metal=[]

i=0
while(i<len(s)-4):
    if(s[i:i+5]=='heavy'):
        heavy.append(i)
    elif(s[i:i+5]=='metal'):
        metal.append(i)

    i+=1

count=0

i=0
j=0

while(j<len(metal) and i<len(heavy)):
    if(heavy[i]<metal[j] and metal[j]-heavy[i]>=5):
        count+=(len(metal)-j)
        i+=1
            elif(metal[j]<heavy[i]):
        j+=1


print(count)

C++ Code:

#include <bits/stdc++.h>

using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	string s;
	cin >> s;

	long long heavy(0), amount(0);

	for (int i = 0; i < min(s.length() - 4, s.length()); i++)
	{
		if (s.substr(i, 5) == "heavy")
		{
			heavy++;
		}
		else if (s.substr(i, 5) == "metal")
		{
			amount += heavy;
		}
	}

	cout << amount << endl;

	return 0;
}


Comments

Submit
0 Comments
More Questions

379B - New Year Present
1498A - GCD Sum
1277C - As Simple as One and Two
1301A - Three Strings
460A - Vasya and Socks
1624C - Division by Two and Permutation
1288A - Deadline
1617A - Forbidden Subsequence
914A - Perfect Squares
873D - Merge Sort
1251A - Broken Keyboard
463B - Caisa and Pylons
584A - Olesya and Rodion
799A - Carrot Cakes
1569B - Chess Tournament
1047B - Cover Points
1381B - Unmerge
1256A - Payment Without Change
908B - New Year and Buggy Bot
979A - Pizza Pizza Pizza
731A - Night at the Museum
742A - Arpa’s hard exam and Mehrdad’s naive cheat
1492A - Three swimmers
1360E - Polygon
1517D - Explorer Space
1230B - Ania and Minimizing
1201A - Important Exam
676A - Nicholas and Permutation
431A - Black Square
474B - Worms